package com.dave.gd.core.base.service;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

import com.dave.gd.core.base.entity.impl.AbstractBaseEntity;
import com.dave.gd.core.common.pagehelper.PageInfo;

@SuppressWarnings("rawtypes")
public interface IGenericService<T extends AbstractBaseEntity, ID extends Serializable> {
    /**
     * 添加新实体
     */
    int save(T t);
    
    /**
     * 删除实体
     */
    int remove(T t);
    
    /**
     * 修改实体
     */
    int update(T t);
    
    /**
     * 通过ID获取实体
     */
    T get(ID id);
    
    /**
     * 根据框架生成查询语句，尽量少用
     */
    @Deprecated
    List<T> listAll();
    
    /**
     * 根据框架生成查询语句，尽量少用
     */
    @Deprecated
    List<T> listByMap(Map<String, Object> map);
    
    /**
     * 根据框架生成查询语句，尽量少用
     */
    @Deprecated
    PageInfo findPageInfoByMap(Map<String, Object> map, int page, int pageSize);
}
